diff --git a/controller.php b/controller.php
new file mode 100644
index 0000000..406b1cf
--- /dev/null
+++ b/controller.php
@@ -0,0 +1,59 @@
+
+*
+*/
+
+class Controller extends \Concrete\Core\Package\Package {
+
+	protected $pkgHandle = 'custom_menu_items';
+	protected $appVersionRequired = '5.7.0.4';
+	protected $pkgVersion = '0.9';
+
+	public function getPackageDescription() {
+		return t("Create menu items to any page on your site.");
+	}
+
+	public function getPackageName() {
+		return t("Custom Menu Items");
+	}
+
+	public function install() {
+		$pkg = parent::install();
+        $sp = \SinglePage::add('/dashboard/system/basics/custom_menu_items', $pkg);
+        if (is_object($sp)) {
+            $sp->update(array('cName'=>t('Custom Menu Items')));
+        }
+    }
+
+	public function on_start() {
+		$u = new \User();
+		if($u->isLoggedIn()) {
+            $db = \Loader::db();
+            $r = $db->Execute('SELECT * FROM pkgCustomMenuItems ORDER BY DisplayOrder');
+            while($row = $r->fetchRow())
+            {
+                //$menu = new \Concrete\Core\Application\Service\UserInterface\Menu;
+                $menu = \Core::make('helper/concrete/ui/menu');
+                $menu->addPageHeaderMenuItem(
+                    'custom_menu_item',
+                    'custom_menu_items',
+                    array(
+                        'href' => $row['cID'],
+                        'position' => 'left'
+                    )
+                );
+            }
+            //var_dump($menu->getPageHeaderMenuItems());
+
+		}
+	}
+}
diff --git a/controllers/single_page/dashboard/system/basics/custom_menu_items.php b/controllers/single_page/dashboard/system/basics/custom_menu_items.php
new file mode 100644
index 0000000..5d1387c
--- /dev/null
+++ b/controllers/single_page/dashboard/system/basics/custom_menu_items.php
@@ -0,0 +1,87 @@
+set('message', t('Menu Item Deleted'));
+
+                case 'added':
+                    $this->set('message', t('Menu Item Added'));
+
+                case 'no':
+                    $this->set('message', t('Invalid Page'));
+
+                case 'exists':
+                    $this->set('message', t('This page is already in the menu!'));
+            }
+        }
+        $db = \Loader::db();
+        $r = $db->Execute('SELECT * FROM pkgCustomMenuItems ORDER BY DisplayOrder');
+        $cIDs = array();
+        while($row = $r->fetchRow())
+        {
+            $cIDs[] = $row['cID'];
+        }
+        $this->set('cIDs', $cIDs);
+    }
+
+    public function delete($cID = false, $toke = false)
+    {
+        if(!$this->token->validate('delete', $toke))
+        {
+            $this->redirect('/dashboard/system/basics/custom_menu_items');
+        }
+        $db = \Loader::db();
+        $db->Execute('DELETE FROM pkgCustomMenuItems WHERE cID = ?', array($cID));
+        $this->redirect('/dashboard/system/basics/custom_menu_items/deleted');
+    }
+
+    public function add($cID = false, $toke = false)
+    {
+        if(!$this->token->validate('add', $toke))
+        {
+            $this->redirect('/dashboard/system/basics/custom_menu_items');
+        }
+        $page = \Page::getByID($cID);
+        if(!is_object($page) || $page->isError())
+        {
+            $this->redirect('/dashboard/system/basics/custom_menu_items/no');
+        }
+        $db = \Loader::db();
+        $exists = $db->getOne('SELECT cID FROM pkgCustomMenuItems WHERE cID = ?', array($cID));
+        if($exists)
+        {
+            $this->redirect('/dashboard/system/basics/custom_menu_items/exists');
+        }
+        $order = $db->GetOne('SELECT count(cID) FROM pkgCustomMenuItems');
+        $db->Execute('INSERT into pkgCustomMenuItems (DisplayOrder,cID) VALUES (?,?)', array($order,$cID));
+        $this->redirect('/dashboard/system/basics/custom_menu_items/added');
+    }
+
+    public function reorder()
+    {
+        if(!isset($_POST['order']) || !is_array($_POST['order']))
+        {
+            $this->redirect('/dashboard/system/basics/custom_menu_items');
+        }
+        $order = $this->post('order');
+        $l = count($order);
+        for ($i = 0; $i < $l; $i++) {
+            try {
+                $db = \Loader::db();
+                $db->Execute('UPDATE pkgCustomMenuItems SET DisplayOrder=? WHERE cID=?',
+                    array($i, $order[$i]));
+            } catch (\Exception $e) {
+            }
+        }
+        exit;
+
+    }
+}
\ No newline at end of file
diff --git a/db.xml b/db.xml
new file mode 100644
index 0000000..0e607d2
--- /dev/null
+++ b/db.xml
@@ -0,0 +1,9 @@
+
+
+        
+